HMI-based pattern modification for robotic palletizing

ABSTRACT

A controller of a material handling system performs a method of creating a multidrop pattern of articles for robotic placement in layers on a pallet. A pattern is presented on a user interface of any currently positioned representations of articles on a pallet. A control affordance for inputting drag&#39;n&#39;drop and numeric inputs is presented on the user interface for robotic control operations to perform a multidrop of the more than one article in an end effector of a robotic arm for placement of the more than one article. User inputs are received that indicate placement position of a first subset of the more than one article. User inputs are received that indicate placement position of a second subset, which is mutually exclusive of the first subset, of the more than one article. The user inputs are converted into a place sequence of robotic control operations to perform a multidrop of the articles by the robotic arm.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.15/659,924, filed Jul. 26, 2017, published as U.S. Publication No.2018/0032225, which claims the benefit of priority under 35 U.S.C. §119(e) to U.S. Provisional Application Ser. No. 62/366,872 entitled“HMI-based pattern modification for robotic palletizing” filed 26-Jul.-2016, the contents of which are incorporated herein by reference intheir entirety.

BACKGROUND 1. Technical Field

The present disclosure relates in general to material handling systemsthat include robotic palletizing of cartons onto a pallet, and moreparticularly to systems that allow customizing of a palletizing patternvia a human-machine interface (HMI) for a robotic palletizer.

2. Description of the Related Art

In working environments, like warehouses, factories, or distributioncenters, manually placing boxes on pallets is time consuming, complex,and expensive. Further, there is always a risk of damaging, wear andtear associated with dropping of items in manual placement. Thus,conventionally, material handling systems are largely utilized forautomating various tasks and handling various items. In this regard,existing material handling systems are able to sort and organize items(e.g. cartons, cases, etc.) stored in such working environments, at highspeeds. Typically, this is achieved using both software and hardwaresupport of material handling technology, for instance, by using softwareor hardwired programmable logic controllers (PLCs) or computing systemsthat handles and drives hardware robotic palletizing arms that automatespicking and placing of the items. Palletizer systems have been developedto facilitate stacking of various items on different stages of palletsfrom either the conveyer belts or from another locations in aninventory. Some generally-known palletizer systems utilize robotic armswhich are driven based on the commands provided by controllers, such asPLCs for picking items and positioning the items on various locations ona pallet.

Generally-known palletizing systems axe pre-loaded with a number ofpallet pattern “recipes” that can be selected for a given size of cartonor cartons that will stacked on a particular pallet. The patterns caninclude tie or slip sheets between particular layers to increasestability as well as requirements for shrink wrapping one or morelayers. Although many such patterns can be provisioned on the system byan original equipment manufacturer (OEM), customization is oftenrequired. For a particular stock keeping unit (SKU), the container suchas a carton, shrink wrap, bag, etc., can introduce an unusual shape.Certain manufacturers, distributor, or retailers can have particularlogos and markings that are to be positioned on an outside of the stackto facilitate shipping or for direct placement in a retail aisle. In,another scenario, a pallet load can include mixed cases for storereplenishment when the particularly selected SKUs are insufficient for afull pallet load per SKU. In other instances, particular SKUs have agiven structural integrity, size or frictional characteristic thatrequire positioning within a particular lateral or vertical position.Thus, a human-machine-interface (HMI) is often necessary for creating anew pattern. However, an end user may not have the requisite trainingand experience to be able to program complicated pick and placemovements of the robotic arm.

Another consideration for pattern customization is that time is money.The longer that it takes for the robotic arm to build a pallet load, theless efficient is the material handling system. Consuming additionalfloor space and capital expenditure into adding more robotic armstations can have insufficient return on investment. However, resortingto human operators to perform pallet stacking has other downsides.Creating a simplistic one-pick-one-place operation via the HMI cancreate a slow stacking operation that correspondingly reduces thethroughput of the material handling system.

BRIEF SUMMARY

In accordance with the teachings of the present disclosure, a method isprovided of creating a multidrop pattern of articles for roboticplacement in layers on a pallet. In one or more embodiments, the methodincludes presenting on a user interface a pattern depiction of anycurrently positioned representations of articles on a pallet. The methodincludes presenting on the user interface a control affordance forrobotic control operations to perform a multidrop of the more than onearticle in an end effector of a robotic arm for placement. The methodincludes receiving a first user input indicating a first placementposition of a first subset of the more than one article. The methodincludes receiving a second user input indicating a second placementposition of a second subset, which is mutually exclusive of the firstsubset, of the more than one article. The method includes converting thefirst and second user inputs into a place sequence of robotic controloperations to perform a multidrop of the more than one article by therobotic arm.

In accordance with embodiments of the present disclosure, a controllerincludes a user interface device, a device interface in communicationwith a robotic arm having an end effector, and a processor subsystem incommunication with the user interface device and device interface toexecute a pattern forming human-machine interface (HMI). The controllerpresents on a user interface a pattern depiction of any currentlypositioned representations of articles on a pallet. The controllerpresents on the user interface a control affordance for robotic controloperations to perform a multidrop of the more than one article in an endeffector of a robotic arm for placement. The controller receives a firstuser input indicating a first placement position of a first subset ofthe more than one article. The controller receives a second user inputindicating a second placement position of a second subset, which ismutually exclusive of the first subset, of the more than one article.The controller converts the first and second user inputs into a placesequence of robotic control operations to perform a multidrop of themore than one article by the robotic arm.

According to illustrative embodiments of the present disclosure, amaterial handling system includes: (i) a pallet support surface; (ii) acase conveyor; (iii) a robotic arm having an end effector and positionedto reach both the pallet support surface and the case conveyor; (iv) auser interface device; and a controller. The controller includes adevice interface in communication with a robotic arm having an endeffector. The controller includes a processor subsystem in communicationwith the user interface device and device interface to execute a patternforming human-machine interface (HMI). The controller presents on a userinterface a pattern depiction of any currently positionedrepresentations of articles on a pallet. The controller presents on theuser interface a control affordance for robotic control operations toperform a multidrop of the more than one article in an end effector of arobotic arm for placement. The controller receives a first user inputindicating a first placement position of a first subset of the more thanone article. The controller receives a second user input indicating asecond placement position of a second subset, which is mutuallyexclusive of the first subset, of the more than one article. Thecontroller converts the first and second user inputs into a placesequence of robotic control operations to perform a multidrop of themore than one article by the robotic arm.

The above presents a general summary of several aspects of thedisclosure in order to provide a basic understanding of at least someaspects of the disclosure. The above summary contains simplifications,generalizations and omissions of detail and is not intended as acomprehensive description of the claimed subject matter but, rather, isintended to provide a brief overview of some of the functionalityassociated therewith. The summary is not intended to delineate the scopeof the claims, and the summary merely presents some concepts of thedisclosure in a general form as a prelude to the more detaileddescription that follows. Other systems, methods, functionality,features and advantages of the claimed subject matter will be or willbecome apparent to one with skill in the art upon examination of thefollowing figures and detailed written description.

BRIEF DESCRIPTION OF THE DRAWINGS

The description of the illustrative embodiments can be read inconjunction with the accompanying figures. It will be appreciated thatfor simplicity and clarity of illustration, elements illustrated in thefigures have not necessarily been drawn to scale. For example, thedimensions of some of the elements are exaggerated relative to otherelements. Embodiments incorporating teachings of the present disclosureare shown and described with respect to the figures presented herein, inwhich:

FIG. 1 illustrates a schematic representation a material handling systemhaving a controller that form patterns and converts the patterns torobotic control operations, according to one or more embodiments;

FIG. 2 illustrates a flow diagram of a method of creating a multidroppattern of articles for robotic placement in layers on a pallet,according to one or more embodiments;

FIG. 3 illustrates a flow diagram of a method of customizing a pickoperation of an end effector of the robotic arm, according to one ormore embodiments;

FIG. 4 illustrates a flow diagram of a method of forming a palletizedload of articles such as cartons or cases based upon a user-customizedpattern, according to one or more embodiments;

FIG. 5 illustrates a diagram of an example pattern, according to one ormore embodiments;

FIG. 6 illustrates a programmable logic controller (PLC) pattern datastructure, according to one or more embodiments;

FIG. 7 illustrates an human-machine-interface (HMI) depiction of a robotconstants screen, according to one or more embodiments;

FIG. 8 illustrates a diagram of a case conveyor with the jig used toteach the base frame, according to one or more embodiments;

FIG. 9 illustrates an HMI load configurator screen for clamping,according to one or more embodiments;

FIG. 10 illustrates an HMI load configurator screen for vacuum,according to one or more embodiments;

FIG. 11 illustrates an HMI depiction 1100 of a case conveyor withsuperimposed end effector clamps for configuring pick of multiplesarticles, according to one or more embodiments; and

FIGS. 12A-12F illustrate sequential HMI depictions for defining patternsof articles, according to one or more embodiments.

DETAILED DESCRIPTION

Existing material handling systems utilize various components forautomating different tasks which are to be performed in a materialhandling environment, such as a warehouse, a logistic center, adistribution center, a stock keeping unit (SKU), an inventory or amanufacturing unit. Typically, palletizing or robotic arms are used forpicking up different items or commodities and placing it at desiredlocations. For instance, in some environments, palletizing arms areutilized to pick multiple items from a conveyer system, such as aconveyer belt and placing the items on placement zones, such as palletsor shelves. Also, in many of such environments, placement of such itemsmay be performed depending on rules, such as patterns or in apre-defined manner. For instance, in some situations, differentcommodities/items like carton boxes or containers are to be picked bythe palletizing arm and are to be placed on conveyer belts in aparticular pattern or a sequence. For example, in case where thepalletizing arm has to pick two different types of items and place themat left and right lanes on a conveyer belt separately, the palletizingarm functions depending on the pattern or rules instructed for theworkflow. In this regard, human machine interfaces (HMI)'s are providedalong with processing devices, such as programmable logic controllers(PLCs) for handling operations of palletizing arms and defining patternsor rules. However, in conventional approaches, providing ease of accessto an operator while utilizing such HMIs has associated challenges. Forthat matter, existing HMIs lacks the capability for providing inputinterface to an operator, wherein an operator can smoothly definepatterns, or define configuration parameters for palletizing arms, orprovide item picking and placement locations in a lesser turnaround timeand using a user-friendly interface.

The present subject matter relates to a material handling system,particularly, a palletizing system, for handling and positioning variousitems in environments like inventory, warehouse, or manufacturing units.According to various exemplary embodiments described herein, thepalletizing system includes a palletizing arm, such as a robotic arm, ahuman-machine interface (HMI), and a processing unit like a programmablelogic controller (PLC) coupled to the palletizing arm and the HMI, forperforming various tasks related to placement of items on pallets. Inthis regard, the human-machine interface comprises an input interfacehaving an input control unit, which may receive inputs pertaining toplacement and positioning of items on various location within theenvironments. The inputs provided on the HMI are accessed by the PLC andprocessed for providing instructions to the palletizing arm for pickingand placing items at desired locations.

According to various embodiments described herein, the HMI may receivemultiple types of inputs corresponding to operations of a conveyersystem, operations of palletizer arm, and positioning of items onpallets. For instance, according to an exemplary embodiment, the HMI mayreceive inputs pertaining to patterns indicative of sequence or mannerin which various items within the environment are to be positioned onpallets. In this regard, according to one exemplary embodiment, the HMImay receive inputs indicative of various parameters for defining thepatterns, for instance, by formulating formulas or rules which are to beprocessed by the PLC. Alternatively, according to another embodiment ofthe present subject matter, the HMI may receive inputs pertaining toselection of pre-defined patterns stored in a memory accessible by thePLC. In this regard, the PLC processes the inputs received on the HMIinterface and sends commands for programming the palletizing arm and/ora conveyer system for positioning items based on the processed inputs.

In accordance with various example embodiments of the present subjectmatter described herein, the HMI can also receive inputs pertaining toselection of items to be picked from an input interface of the HMI. Inthis regard, items or commodities available in a material handlingenvironment which are to be picked are displayed on a display unit ofthe HMI. Accordingly, an operator can select an item, for instance, byproviding a touch based input. In this regard, the operator can selectan icon or an image of an item displayed on the display unit of the HMI.Further, the operator can drag the selected icon on the HMI inputinterface and can drop the selected icon at a desired locationcorresponding to a placement zone displayed on the HMI display unit.Accordingly, the inputs provided on the HMI interface are accessed bythe processing unit or the PLC and are processed by the PLC. The PLCprocesses the inputs based on which a control unit of the palletizingarm operates the palletizing arm. Thus, the palletizing arm picks theitem selected via the HMI interface and places the item on the desiredlocation as provided on the HMI interface. In an example implementationof the embodiment, the HMI input interface is operable to receive inputspertaining to selection of multiple items in one go, which can bedragged simultaneously, and placed at different locations displayed onthe display unit of the HMI. Thus, the HMI as described herein inmultiple embodiments hereinafter, by the way of implementation, providesan easy user-friendly interface to the operator for defining patternsfor placement of items, and drag and drop multi-pick functionality forpositioning different items by the palletizing arm. Further, the PLCcoupled to the HMI interface, as described hereinafter, enablesprogramming of the palletizing arm for picking multiple selected itemson the HMI interface and placing each of the selected items at desiredlocation defined on the HMI interface, in a single instance.

Existing material handling systems utilize various components forautomating different tasks which are to be performed in a materialhandling environment, such as a warehouse, a logistic center, adistribution center, a stock keeping unit (SKU), an inventory or amanufacturing unit. Typically, palletizing or robotic arms are used forpicking up different items or commodities and placing it at desiredlocations. For instance, in some environments, palletizing arms areutilized to pick multiple items from a conveyer system, such as aconveyer belt and placing the items on placement zones, such as palletsor shelves. Also, in many of such environments, placement of such itemsmay be performed depending on rules, such as patterns or in apre-defined manner. For instance, in some situations, differentcommodities/items like carton boxes or containers are to be picked bythe palletizing arm and are to he placed on conveyer belts in aparticular pattern or a sequence. For example, in case where thepalletizing arm has to pick two different types of items and place themat left and right lanes on a conveyer belt separately, the palletizingarm functions depending on the pattern or rules instructed for theworkflow. In this regard, human machine interfaces (HMO's are providedalong with processing devices, such as programmable logic controllers(PLCs) for handling operations of palletizing arms and defining patternsor rules. However, in conventional approaches, providing ease of accessto an operator while utilizing such HMIs has associated challenges. Forthat matter, existing HMIs lacks the capability for providing inputinterface to an operator, wherein an operator can smoothly definepatterns, or define configuration parameters for palletizing arms, orprovide item picking and placement locations in a lesser turnaround timeand using a user-friendly interface.

The present subject matter relates to a material handling system,particularly, a palletizing system, tear handling and positioningvarious items in environments like inventory, warehouse, ormanufacturing units. According to various exemplary embodimentsdescribed herein, the palletizing system includes a palletizing arm,such as a robotic arm, a human-machine interface (HMI), and a processingunit like a programmable logic controller (PLC) coupled to thepalletizing arm and the HMI, for performing various tasks related toplacement of items on pallets. In this regard, the human-machineinterface comprises an input interface having an input control unit,which may receive inputs pertaining to placement and positioning ofitems on various location within the environments. The inputs providedon the HMI are accessed by the PLC and processed for providinginstructions to the palletizing arm for picking and placing items atdesired locations.

According to various embodiments described herein, the HMI may receivemultiple types of inputs corresponding to operations of a conveyersystem, operations of palletizer arm, and positioning of items onpallets. For instance, according to an exemplary embodiment, the HMI mayreceive inputs pertaining to patterns indicative of sequence or mannerin which various items within the environment are to be positioned onpallets. In this regard, according to one exemplary embodiment, the HMImay receive inputs indicative of various parameters for defining thepatterns, for instance, by formulating formulas or rules which are to beprocessed by the PLC. Alternatively, according to another embodiment ofthe present subject matter, the HMI may receive inputs pertaining toselection of pre-defined patters stored in a memory accessible by thePLC. In this regard, the PLC processes the inputs received on the HMIinterface and sends commands for programming the palletizing arm and/ora conveyer system for positioning items based on the processed inputs.

In accordance with various example embodiments of the present subjectmatter described herein, the HMI can also receive inputs pertaining toselection of items to be picked from an input interface of the HMI. Inthis regard, items or commodities available in a material handlingenvironment which are to he picked are displayed on a display unit ofthe HMI. Accordingly, an operator can select an item, for instance, byproviding a touch based input. In this regard, the operator can selectan icon or an image of an item displayed on the display unit of the HMI.Further, the operator can drag the selected icon on the HMI inputinterface and can drop the selected icon at a desired locationcorresponding to a placement zone displayed on the HMI display unit.Accordingly, the inputs provided on the HMI interface are accessed bythe processing unit or the PLC and are processed by the PLC. The PLCprocesses the inputs based on which a control unit of the palletizingarm operates the palletizing arm. Thus, the palletizing arm picks theitem selected via the HMI interface and places the item on the desiredlocation as provided on the HMI interface. In an example implementationof the embodiment, the HMI input interface is operable to receive inputspertaining to selection of multiple items in one go, which can bedragged simultaneously, and placed at different locations displayed onthe display unit of the HMI. Thus, the HMI as described herein inmultiple embodiments hereinafter, by the way of implementation, providesan easy user-friendly interface to the operator for defining patternsfor placement of items, and drag and drop multi-pick functionality forpositioning different items by the palletizing arm. Further, the PLCcoupled to the HMI interface, as described hereinafter, enablesprogramming of the palletizing aim for picking multiple selected itemson the HMI interface and placing each of the selected items at desiredlocation defined on the HMI interface, in a single instance.

FIG. 1 illustrates a material handling system 100 that provides anexemplary environment within which one or more of the described featuresof the various embodiments of the disclosure can be implemented. Acontroller 102 prepares customized patterns converted into roboticcommands for a palletizing system 103 that includes a robotic arm 105with an article engaging end effector 107. The controller 102 can beimplemented as a unitary device or distributed processing system. Thecontroller 102 includes functional components that communicate across asystem interconnect of one or more conductors or fiber optic fabric thatfor clarity is depicted as a system bus 104. System bus 104 may includea data bus, address bus, and control bus for communicating data,addresses and control information between any of these coupled units. Abus controller 106 can provide infrastructure management of the systembus 104. Processor subsystem 108 may include any instrumentality oraggregate of instrumentalities operable to compute, classify, process,transmit, receive, retrieve, originate, switch, store, display,manifest, detect, record, reproduce, handle, or utilize any form ofinformation, intelligence, or data for business, scientific, control, orother purposes including control of automation equipment of a materialhandling system. The controller 102 may be scalable, such as having abuffer 110 on the system bus 104 that communicatively couples with anexpansion bus 112 for communicating and interfacing to expansion modules115 and expansion input/output (I/O) 116.

In accordance with various aspects of the disclosure, an element, or anyportion of an element, or any combination of elements may be implementedwith processor subsystem 108 that includes one or more physical devicescomprising processors. Non-limiting examples of processors includemicroprocessors, microcontrollers, digital signal processors (DSPs),field programmable gate arrays (FPGAs), programmable logic devices(PLDs), programmable logic controllers (PLCs), state machines, gatedlogic, discrete hardware circuits, and other suitable hardwareconfigured to perform the various functionality described throughoutthis disclosure. One or more processors in the processing system mayexecute instructions. A processing system that executes instructions toeffect a result is a processing system Which is configured to performtasks causing the result, such as by providing instructions to one ormore components of the processing system which would cause thosecomponents to perform acts which, either on their own or in combinationwith other acts performed by other components of the processing systemwould cause the result.

Controller 102 may include a network interface device (NID) 118 thatenables controller 102 to communicate or interface with other devices,services, and components that are located external to controller 102,such as a host system 120. Host system 120 can provide schedulinginformation to the controller 102 such as identification of items beingdirected to a controlled component and their assigned destination. Hostsystem 120 can provide programming for the controller 102 and obtaindiagnostic and status monitoring data. These networked devices,services, and components can interface with controller 102 via anexternal network, such as example network 122, using one or morecommunication protocols. Network 122 can be a local area network, widearea network, personal area network, and the like, and the connection toand/or between network and controller 102 can be wired or wireless or acombination thereof. For purposes of discussion, network 122 isindicated as a single collective component for simplicity. However, itis appreciated that network 122 can comprise one or more directconnections to other devices as well as a more complex set ofinterconnections as can exist within a wide area network, such as theInternet or on a private intranet. For example, a programmingworkstation 124 can remotely modify programming or parameter settings ofcontroller 102 over the network 122. Various links in the network 122can wired or wireless.

System memory 126 can be used by processor subsystem 108 for holdingfunctional components such as data and software such as a patternforming HMI 128 that is retrieved from data storage 130. Data andsoftware can be provided to the controller 102 or exported from thecontroller 102 via removable data storage (RDS) 132. Software may beconstrued broadly to mean instructions, instruction sets, code, codesegments, program code, programs, subprograms, software modules,applications, software applications, software packages, routines,subroutines, objects, executables, threads of execution, procedures,functions, etc., whether referred to as software, firmware, middleware,microcode, hardware description language, function block diagram (FBD),ladder diagram (LD), structured text (ST), instruction list (IL), andsequential function chart (SFC) or otherwise. The software may reside ona computer-readable medium.

For clarity, system memory 126 is random access memory, which may or maynot be volatile, and data storage 130 is generally nonvolatile. Systemmemory 126 and data storage 130 contain one or more types ofcomputer-readable medium, which can be a non-transitory or transitory.Computer-readable medium includes, by way of example, a magnetic storagedevice (e.g., hard disk, floppy disk, magnetic strip), an optical disk(e.g., compact disk (CD), digital versatile disk (DVD)), a smart card, aflash memory device (e.g., card, stick, key drive), random access memory(RAM), read only memory (ROM), programmable ROM (PROM), erasable PROM(EPROM), electrically erasable PROM (EEPROM), a register, a removabledisk, and any other suitable medium for storing software and/orinstructions that may be accessed and read by a computer. Thecomputer-readable medium may be resident in the processing system,external to the processing system, or distributed across multipleentities including the processing system. The computer-readable mediummay be embodied in a computer-program product. By way of example, acomputer-program product may include a computer-readable medium inpackaging materials. Those skilled in the art will recognize how best toimplement the described functionality presented throughout thisdisclosure depending on the particular application and the overalldesign constraints imposed on the overall system.

Certain manual interactions and indications can also be provided via ahuman-machine interface (HMI) 134 that is integral or connected to thecontroller 102. HMI can be formed of one or more devices that providesinput and output functions such as via a touch screen graphical display,keypad, microphone, speaker, haptic device, camera, gauges, lightindicators, dials, switches, etc. A power supply 136 provides regulatedvoltages at required levels for the various components of the controller102 and can draw upon facility power.

A remote I/O communication module 138 can provide communication protocolfor handling of various inputs and outputs between the system bus 104and controller interfaces such as a discrete I/O interface/s 140, analogI/O interfaces 142, and special I/O interfaces 144. Each interface 140,142, 144 can provide as necessary analog-to-digital or digital-to-analogconversion, signal processing, buffering, encoding, decoding, etc., inorder to communicate with discrete, analog, or special I/O field devices146, 148, 150, respectively.

FIG. 2 illustrates a method 200 of creating a multidrop pattern ofarticles for robotic placement in layers on a pallet. In one or moreembodiments, method 200 begins presenting, by a controller on a userinterface, a control affordance for selecting one of: (i) an endeffector having pairs of clamps; and (ii) an end effector having vacuumzones (block 202). A determination is made as to whether a user input isreceived (decision block 204). In response to determining that a userinput is not received, the controller repeats decision block 204 tocontinue waiting. In response to receiving an end effector user input,the controller presents on a user interface a control affordance forselecting respectively: (a) a configuration of clamps; and (b) aconfiguration of vacuum zones (block 206). Method 200 includespresenting on the user interface a pattern depiction of any currentlypositioned representations of articles on a pallet (block 208). Method200 includes presenting on the user interface a control affordanceprompting drag'n'drop user inputs or numeric user inputs for roboticcontrol operations to perform a multidrop of the more than one articlein an end effector of a robotic arm for placement (block 210). Thenumeric user inputs may be vector-based, directional, relative, etc. Adetermination is made as to whether a user input is received,interacting with the control affordances (decision block 212). Inresponse to determining that a user input is not received, thecontroller repeats decision block 212 to continue waiting. In responseto determining that a user input is received, method 200 includesdetermining a first placement position of a first subset of the morethan one article based on indications provided by a first user input(block 214). Method 200 includes determining a second placement positionof a second subset, which is mutually exclusive of the first subset, ofthe more than one article based on dications provided by a second userinput (block 216). Method 200 includes converting the first and seconduser inputs into a place sequence of robotic control operations toperform a multidrop of the more than one article by the robotic arm(block 218). Then method 200 ends.

FIG. 3 illustrates a method 300 of customizing a pick operation of anend effector of the robotic arm. In one or more embodiments, method 300begins presenting on the user interface a case conveyor depiction of acase conveyor and the more than one article arrayed on the case conveyor(block 302). Method 300 includes presenting on the user interface an endeffector depiction of independently controllable zones of the endeffector (block 304). Method 300 includes presenting the controlaffordance comprises soliciting a position for a zone gap relative tothe more than one article (block 306). A determination is made as towhether a user input is received (decision block 308). In response todetermining that a user input is not received, the controller repeatsdecision block 306 to continue waiting. In response to receiving a userinput, the controller determines a superimposed position of theindependently controllable zones on the more than one case conveyorbased on an indication provided by the user input (block 310). Method300 includes determining an engagement status of each independentlycontrollable zone to engage a respect one or more of the more than onearticle based at least in part on the user input (block 312). Method 300includes determining the relative position for the zone gap based atleast in part on the user input (block 314). Controller converts thedetermined indications based on the user input into a pick sequence ofrobotic control operations to perform the multidrop of the more than onearticle by the robotic arm (block 316). Then method 300 ends.

FIG. 4 illustrates a method 400 of forming a palletized load of articlessuch as cartons or cases based upon a user-customized pattern. In one ormore embodiments, method 400 begins accessing, by a controller, pick andplace sequences of robotic control operations for multidrop placement ofarticles by the robotic arm (block 402). Method 400 includes moving theend effector to a pick approach position (block 404). Method 400includes moving the end effector to a pick offset position (block 406).Method 400 includes moving the end effector to a pick position (block408). Method 400 includes actuating selected ones of the independentlycontrollable zones of the end effector to engage the more than onearticle (block 410). Method 400 includes moving the end effector to afirst pick depart position (block 412). Method 400 includes moving theend effector to a first place approach position (block 414). Method 400includes moving the end effector to a first place tuck position (block416). Method 400 includes moving the end effector to a first placeposition (block 418). Method 400 includes deactuating one or moreindependently controllable zones that correspond to the first subset ofmore than one article (block 420). Method 400 includes moving to asecond place depart position (block 422). Method 400 includes moving tosecond place approach position (block 424). Method 400 includes movingthe end effector to a second place tuck position (block 426). Method 400includes moving the end effector to a second place position (block 428).Method 400 includes deactuating one or more independently controllablezones that correspond to the second subset of more than one article toplace (block 430). Method 400 ends.

In the above described flow chart of FIGS. 2-4, one or more of themethods may be embodied in an automated controller that performs aseries of functional processes. In some implementations, certain stepsof the methods are combined, performed simultaneously or in a differentorder, or perhaps omitted, without deviating from the scope of thedisclosure. Thus, while the method blocks are described and illustratedin a particular sequence, use of a specific sequence of functionalprocesses represented by the blocks is not meant to imply anylimitations on the disclosure. Changes may be made with regards to thesequence of processes without departing from the scope of the presentdisclosure. Use of a particular sequence is therefore, not to be takenin a limiting sense, and the scope of the present disclosure is definedonly by the appended claims.

One or more of the embodiments of the disclosure described can beimplemented, at least in part, using a software-controlled programmableprocessing device, such as a microprocessor, digital signal processor orother processing device, data processing apparatus or system. Thus, itis appreciated that a computer program for configuring a programmabledevice, apparatus or system to implement the foregoing described methodsis envisaged as an aspect of the present disclosure. The computerprogram may be embodied as source code or undergo compilation forimplementation on a processing device, apparatus, or system. Suitably,the computer program is stored on a carrier device in machine or devicereadable form, for example in solid-state memory, magnetic memory suchas disk or tape, optically or magneto-optically readable memory such ascompact disk or digital versatile disk, flash memory, etc. Theprocessing device, apparatus or system utilizes the program or a partthereof to configure the processing device, apparatus, or system foroperation.

A palletizing robot has two primary tasks. To “pick” up one or morecases and “places” those cases on a pallet or slip sheet in the correctpattern. The robot needs to be told where to pick up cases, how many topick as well as where to place and how many places. In an exemplaryembodiment, a palletizing robot programming tool is based on having onlythe basic program in the robot controller. A PLC defines the points thatrobot moves the tool to and at what speed. The PLC instructs the robotthrough the use of variables in the robot code over Ethernet basedprimarily on the case size and pattern. The other feature of thissoftware tool is the defining of “user frames” for each of the pick andbuild stations to let the robot and the PLC know where to move to pickand place cartons.

The software system is designed to work primarily on clamp tools, vacuumtools or fork tool for picking up the eases/boxes/totes for single dropor multidrop placement of the cases onto the pallet. The Load can becreated by using template place position based formulas or by manuallyusing drag drop method or using tuning arrows. The layer created usingplace position formulas is called as ‘Template Based Layer’ and the loadcreated using manually (drag-drop) method is called as ‘Pattern BasedLayer’. The software is able to detect the dropped cases from the robottool or box collision, as well as for each pick position or placeposition different speed can be assigned to the robot. Search functionallows user to check available load configuration for user entered casedimensions. IntelliGen works with Fanuc, Motoman, or Kuka robot withoutany major modification on PLC side.

In one or more embodiments, a palletizing system includes an interfaceunit that has: (i) an input control unit; (ii) a display unit coupled tothe input control unit; (iii) a processing unit coupled to the interfaceunit; and (iv) a palletizing arm. The processing unit: (a) receivesinputs on the input control unit, wherein the inputs corresponds topatterns indicative of placement of items on an item placement zone; (b)displays on the display unit, the pattern received by the processingunit; (c) receives item-location inputs via the input control unit,wherein the item-location inputs corresponds to: (1) selection of atleast one item from amongst multiple items displayed on the displayunit, wherein the multiple items corresponds to items to be placed bythe palletizing system; and (2) an item placement locations for placingthe at least one selected item via a palletizing arm. The item-locationinputs are to be provided via the input control unit by dragging animage of the item displayed on the display screen to the item placementlocation, based on an item placement pattern displayed on the displayunit. The palletizing arm is coupled to the interface unit, thepalletizing arm configured to pick the items and place the items on acorresponding item placement location based on inputs received by theprocessing unit.

In one or more embodiments, the processing unit of the palletizingsystem is to self-optimize the patterns to provide automated adjustmentfor accommodating plurality of items on an item placement zone, uponchange in dimensions of the at least one selected item.

In one or more embodiments, the processing unit of the palletizingsystem is to receive the inputs corresponding to the patterns forplacement of items based on at least one of (a) drawing a pattern viathe input control unit and/or (b) receiving pattern defining parametersand attributes corresponding to the pattern defining parameters, whereinthe patterns are defined using rules based on the pattern definingparameters and associated attributes.

In one or more embodiments, the processing unit of the palletizingsystem is to receive inputs via the input control unit to: (i) selectplurality of item images displayed on the display unit; and (ii) defineplurality of item locations for placing the plurality of selected itemscorresponding to the item images. The palletizing arm picks theplurality of items together and place each item from amongst theplurality of items at the plurality of items respectively.

In one or more embodiments, the processing unit of the palletizingsystem is to receive the inputs corresponding to the patterns forplacement of items based on at least one of (a) drawing a pattern viathe input control unit; or (b) receiving pattern defining parameters andattributes corresponding to the pattern defining parameters. Thepatterns are defined using rules based on the pattern definingparameters and associated attributes.

In one or more embodiments, a palletizing interface unit includes: (i)an input control unit; (ii) a display unit coupled to the input controlunit; and (iii) a processing unit coupled to the input control unit andthe display unit. The processing unit is to: (i) receive items-locationinputs via the input control unit, wherein the item-location inputscorresponding to: (a) dimensions associated with at least two items; and(b) at least two item placement locations for placing the at least twoitems at respective item placement locations via a palletizing arm. Theitem-location inputs are provided based on an item placement patterndisplayed on the display unit.

In one or more embodiments, the processing unit of the palletizinginterface unit receives inputs on the input control unit. The inputscorrespond the item placement pattern indicative of placement of itemson an item placement zone. The processing unit can be a programmablelogic controller (PLC) coupled to the input control unit.

In one or more embodiments, the present disclosure provides a methodthat includes receiving inputs on an input control unit corresponding toan input interface of a palletizer system. The inputs corresponds topatterns indicative of placement of items on an item placement zone by apalletizing arm of the palletizer system. The method includes displayingon a display unit of the palletizer system, the pattern received via theinput control unit. The method includes receiving item-location inputsvia the input control unit, wherein the item-location inputs correspondsto: (a) selection of at least one item from amongst multiple itemsdisplayed on the display unit; and (b) item placement locations forplacing the at least one selected item via the palletizing arm. Theitem-location inputs are provided via the input control unit by draggingan image of the item displayed on the display screen to the itemplacement location, based on an item placement pattern displayed on thedisplay unit. The method includes processing, by a processing unit ofthe palletizer system, the patterns and the item location inputsreceived on the input interface and accessed by the processing unit. Themethod includes placing the items picked by the palletizing arm on acorresponding item placement location based on inputs received on theinput interface upon receiving control instructions at the palletizingarm by the processing unit.

In one or more embodiments, the method includes placing of the items bypicking the items together, by the palletizing arm and placing each itemfrom amongst the items at the corresponding items locationsrespectively. The method includes receiving the inputs corresponding topatterns is based on at least one of: (a) drawing a pattern via theinput control unit; or (b) receiving pattern defining parameters andattributes corresponding to the pattern defining parameters. Thepatterns are defined using rules based on the pattern definingparameters and associated attributes

References within the specification to “one embodiment,” “anembodiment,” “embodiments”, or “one or more embodiments” are intended toindicate that a particular feature, structure, or characteristicdescribed in connection with the embodiment is included in at least oneembodiment of the present disclosure. The appearance of such phrases invarious places within the specification are not necessarily allreferring to the same embodiment, nor are separate or alternativeembodiments mutually exclusive of other embodiments. Further, variousfeatures are described which may be exhibited by some embodiments andnot by others. Similarly, various requirements are described which maybe requirements for some embodiments but not other embodiments.

It is understood that the use of specific component, device and/orparameter names and/or corresponding acronyms thereof, such as those ofthe executing utility, logic, and/or firmware described herein, are forexample only and not meant to imply any limitations on the describedembodiments. The embodiments may thus be described with differentnomenclature and/or terminology utilized to describe the components,devices, parameters, methods and/or functions herein, withoutlimitation. References to any specific protocol or proprietary name indescribing one or more elements, features or concepts of the embodimentsare provided solely as examples of one implementation, and suchreferences do not limit the extension of the claimed embodiments toembodiments in which different element, feature, protocol, or conceptnames are utilized. Thus, each term utilized herein is to be given itsbroadest interpretation given the context in which that terms isutilized.

With regard to robot/tool configuration, the software tool is designedto work with clamp tools, or vacuum tools or fork tools up to twenty(20) clamps/zones/fork. The number of clamps or vacuum zones on a toolwill vary by project. A fixed blade is the one side of the tool thatdoes not move. For the purposes of defining clamps; the fixed blade ison a left side, when facing away from the robot base, with the tool atzero degrees (0°). If the fixed blade is on left hand side standing atan infeed conveyor and facing towards the robot, then the pick type isLeft Side Pick. If the fixed blade is on right side standing at robotbase and facing towards infeed conveyor, then the pick type is RightSide Pick.

The depth (height) of the damps is assumed to be the same for allclamps. The length (width) of each clamp is individually configurable.This data is required for the IntelliGen software configuration. For thepurposes of device naming and input/output (I/O) mapping, the clamps arenumbered; starting from the most upstream clamp and counting toward theend of the tool, with the fixed blade on the left. If the fixed blade ison the right, the clamps are numbered starting from the most downstreamclamp and counting against the infeed direction. The tool center pointis defined for the robot by mounting a tool pointer to the center of thefixed blade. The tip of the tool pointer will be in line with thebelting that lines the inside edge of the fixed blade.

KUKA Robotics uses the term Base Frame for user defined bases. Motormanand Fanuc robots use the term User Frame. Axis definition for all robotsis as follows:

-   -   X=−in/+out horizontally in relation to the robot base. (0 is        robot base center),    -   Y=−left/+right horizontally in relation to the robot base. (0 is        the center point in front of the robot);    -   Z=+up/−down vertically in relation to the robot base. (0 is        directly out from the base of the robot)    -   A value of x, y, z (in millimeters) can identify any point in        space within reach of the robot.

Case Conveyor Base: Facing the case conveyor looking upstream, the baseframe(s) will be the near right hand corner of the conveyor. The cornerwill be the junction of the end plate and the side frame or as close aspossible. The X axis will be the side of the conveyor; the Y axis willbe the end of the conveyor and Z will be the height of the conveyor. Ajig that rests on the conveyor, square with the end and side frames, isthe preferred method of teaching the base frame. The jig is placed onthe conveyor to insure alignment with side and end frames. Holes in thejig (P1, P2, and P3) are used to accurately position the pointer for atthe origin, X, Y and Z axis.

Pallet Build Conveyor Base: Facing the pallet build conveyor lookingupstream, the base frame(s) will be the near right hand corner of theconveyor. A jig that rests on the conveyor, square with the end and sideframes, is a method of teaching the base frame. Similar to the caseconveyor jig, punch marks in the pallet jig are used to accuratelyposition the pointer for at the origin, X, and Y axis.

Pick and Place Sequence: A pick is the action of the robot moving to thecase conveyor, picking up cases in the tool, and moving to the PickDepart position. The entire sequence of picking up cases and placingthem on the build location is occasionally referred to as a pick. Aplace is the action of the robot moving to the place position andplacing cases onto the load being built.

Operation Sequence: The general sequence of operation for a picksequence is as follows:

-   -   (i) Move to Pick Approach Position;    -   (ii) Move to Pick Offset Position;    -   (iii) Move to Pick Position (slower speed);    -   (iv) Close Clamps;    -   (v) Move to Pick Depart Position;    -   (vi) Move to Place Approach Position;    -   (vii) Move to Place Tuck Position;    -   (viii) Move to Place Position (slower speed);    -   (ix) Open Clamps;    -   (x) Move to Place Depart Position;    -   (xi) If multidrop is active, move to next place approach;    -   (xii) Move to Place Tuck Position or Depart distance position;    -   (xiii) Move to Place Position (slower speed);    -   (xiv) Open Clamps;    -   (xv) Move to Place Depart Position; and    -   (xvi) If new Pick not available then move to idle.

Sequences that require double or triple drops will have additional movesadded to the sequence.

Pattern Data: Cases per Layer refers to the number of cases that will berequired to complete the layer of a new load being built. Picks perlayer refers to the number of pick sequences that will be required tocomplete the layer of a new load. Places per layer refers to the numberof place sequences that will be required to complete the layer of a newload. Overhang refers to the distance (millimeters) that the mostupstream clamp in a pick will extend beyond the last case used in thepick. Overhang range can be from (−50 mm) to (50 mm). Negative overhangvalues will result in the clamp further downstream of the last case inthe pick. Depart Distance refers to the distance (millimeters) that therobot will move up for next place position. Depart Distance is used formultidrop sequences, if set to zero the depart distance will be suchthat the bottom of the case will be 50 mm above the top layer. If themove does not require any rotation or an adjacent shift you can specifyto limit the depart height so the case or clamp does not move above thelayer height.

Pick Type: Cases can be picked from the case conveyor with the fixedblade in the standard position on the left, or they can be picked withthe tool rotated 180° thus orienting the fixed blade on the right. Casescan also be picked with different clamp configurations. Thisconfiguration refers to the clamp that starts the pick. The clamp iseither the most upstream clamp or the most downstream clamp of the toolin the current position (standard 0° or rotated 180°). The combinationof the fixed blade position and the clamping configuration is referredto as the Pick Type. Available pick types for a particular system are afunction of the number of clamps available on the robot tool.

Left Side Pick types are used to define picks with the tool fixed bladeon the left hand side, when facing towards the case flow direction.Right Side Pick types are used to define picks with the tool fixed bladeon the right hand side, when facing towards the case flow direction. Fordownstream left/right pick, the tool will be positioned such that thetool is as far downstream as possible with the current cases defined forthe pick. For upstream left/right pick, the tool will be positioned suchthat the tool does not extend further then the end of the pick conveyor.This option can be used if there is concern for tool interference withthe base of the robot.

Most accurate corner: When the robot picks product, the intersection ofthe fixed blade and the end stop of the conveyor is the most accurateposition of the pick. This position becomes the most accurate corner.This corner is used to determine rotation, X axis value, and Y axisvalue for the place positions.

Clamp Gap is used to define the position of the tool in relation to thepick. When a clamp gap is defined it will move the gap to the end of thepick or the defined case split selection.

The Case split is used to define the location of the tool in relation tothe clamp gap. When a clamp gap is defined you can move that gap to aspecific split of the cases. This is used to define a multidrop pickoption.

Consider for example a two-case pick for left side pick type withdownstream. The fixed blade is on the left side position. Given thatthere are three cases on the conveyor, two will be picked. Thedownstream option means that the first clamp of the tool (counting frommost upstream toward the robot) is on the most upstream case of thepick. The PLC will calculate the remaining clamps to be used for thepick.

Consider for example of a two-case pick using clamp gap 1-2 for leftside downstream pick type with negative overhang distance. The fixedblade is on the left side with downstream position. There are threecases on the conveyor, two will be picked. Clamp Gap 1-2 means that thesecond clamp of the tool (counting from most upstream toward the robot)is on the most upstream case of the pick with negative overhang distancevalue. The PLC will calculate the remaining clamps to be used for thepick.

Consider an example of a two case pick using clamp gap 1-2 for left sidedownstream pick type with positive overhang distance. The fixed blade ison the left side with downstream position. There are three cases on theconveyor, two will be picked. Clamp Gap 1-2 means that the second clampof the tool (counting from most upstream toward the robot) is on themost upstream case of the pick with positive overhang distance value.The PLC will calculate the remaining clamps to be used for the pick.

Consider for example a two-case pick using clamp gap 2-3 for left sidedownstream pick type. The fixed blade is on the left side withdownstream position. There are three cases on the conveyor, two will hepicked. Clamp Gap 2-3 means that the third clamp of the tool (countingfrom most downstream away from the robot) is on the most upstream caseof the pick. The PLC will calculate the remaining clamps to be used forthe pick.

Consider for example a two-case pick using clamp gap 2-3 and case split1-2 for left side downstream pick type. The fixed blade is on the leftside with downstream position. There are three eases on the conveyor,two will be picked. Clamp Gap 2-3 means that the gap between clamp 2 and3 of the tool (counting from most upstream clamp towards the robot) ison the case split between 1 and 2 of the pick. Case Split 1-2 referredto the split between case 1 and 2. The PLC will calculate the remainingclamps to be used for the pick.

Consider an example of a two-case pick using left side upstream picktype. The fixed blade is on the left hand side with upstream position.There are three cases on the conveyor, two will he picked. The firstclamp of the tool (counting from most downstream stream away from therobot) is on the most downstream case of the pick. The PLC willcalculate the remaining clamps to be used for the pick.

Consider an example of a three-case pick using left side pick withdownstream. The fixed blade is on the left hand side with downstreamposition. There are four cases on the conveyor, three will be picked.The first clamp of the tool (counting from most upstream toward therobot) is the clamp on the most upstream case of the pick. The PLC willcalculate the remaining clamps to be used for the pick.

Note that the left side downstream pick type is regardless of the casesper pick value. The only difference between the 2 case pick (Example 0)and 3 case pick is the number of clamps used.

Consider an example of a three case pick using left side pick withupstream. The fixed blade is on the left hand side with upstreamposition. There are four cases on the conveyor, three will be picked.The first clamp of the tool (counting from most downstream stream awayfrom the robot) is the clamp on the most downstream case of the pick.The PLC will calculate the remaining clamps to be used for the pick.

Note that the left side upstream pick type is regardless of the casesper pick value. The only difference between the 2 cases pick (Example 0)and 3 case pick is the number of clamps used.

Consider an example for a two-case pick using right side pick type. Thefixed blade is rotated 180°, it's on right hand side. There are threecases on the conveyor, two will be picked. The first clamp of the tool(counting from most upstream toward the robot) is the clamp on the mostupstream case of the pick. The PLC will calculate the remaining clampsto be used for the pick. Add Overhang distance, if needed.

Consider an example of a two-case pick using clamp gap 1-2 for rightside downstream pick type with negative overhang distance. The fixedblade is on the right hand side with downstream position. There arethree cases on the conveyor, two will he picked. Clamp Gap 1-2 meansthat the second clamp of the tool (counting from most upstream towardthe robot) is the clamp on the most upstream case of the pick withnegative overhang distance value. The PLC will calculate the remainingclamps to be used for the pick.

Consider an example of a two-case pick using clamp gap 1-2 for rightside downstream pick type with negative overhang distance. The fixedblade is on the right hand side with downstream position. There arethree cases on the conveyor, two will be picked. Clamp Gap 1-2 meansthat the second clamp of the tool (counting from most upstream towardthe robot) is on the most upstream case of the pick with positiveoverhang distance value. The PLC will calculate the remaining clamps tobe used for the pick.

Consider an example of a two-case pick using clamp gap 2-3 for rightside downstream pick type. The fixed blade is on the right side withdownstream position. There are three cases on the conveyor, two will bepicked. Clamp Gap 2-3 means that the third clamp of the tool (countingfrom most upstream toward the robot) is on the most upstream case of thepick. The PLC will calculate the remaining clamps to be used for thepick.

Consider an example of a two-case pick using clamp gap 2-3 for rightside downstream pick type. The fixed blade is on the right side withdownstream position. There are three cases on the conveyor, two will bepicked. Clamp Gap 2-3 means that the third clamp of the tool (countingfrom the most upstream away from the robot) is on the most upstream caseof the pick. The PLC will calculate the remaining clamps to be used forthe pick.

Consider an example of a two case pick using right side upstream picktype. The fixed blade is on the right hand side with upstream position.There are three cases on the conveyor, two will be picked. The firstclamp of the tool (counting from most downstream stream away from therobot) is on the most downstream case of the pick. The PLC willcalculate the remaining clamps to be used for the pick.

X and Y Positions: When a pick is made the robot will move the tool tothe build pallet in such a way that the most accurate corner (Section 0)is lined up with the (0, 0, 0) coordinate of the build pallet and thefixed blade is lined up along the right edge of the pallet. The mostaccurate corner is placed at (0, 0, 0) on the pallet and the fixed bladeis along the right edge of the pallet. For a right side pick type, themost accurate corner is placed at (0, 0, 0) on the pallet and the fixedblade is along the right edge of the pallet. The X and Y Positioncoordinates represent the position coordinates that the most accuratecorner of the pick will be placed on the pallet.

Rotation: The rotation value represents the rotation necessary to turnthe pick, relative to the most accurate corner, in order to place thefixed blade in the desired location. For example, if the pick needs tobe rotated horizontal, and the fixed blade must be to the outside of thepallet, then the pick must be rotated −90° about the most accuratecorner, Z Axis. If the pick needs to be rotated horizontal, and thefixed blade must be to the outside of the pallet, then the pick must berotated −90° about the most accurate corner, Z Axis.

Tuck represents the direction the robot will tuck, or slide, the pickinto the load during the place operation. Tuck is used to close up gapsbetween cases during the build. The tuck direction is represented by aninteger value. As a convention, the direction 1 is always in thedirection of the positive X axis of the base and thus the direction 7 isalways in the direction of the positive Y axis of the base. Zeroindicates no tuck.

Multidrop refers to the scenario where cases are picked for more thanone place. For example; four cases may be picked to drop at two placesof two cases each. The system data structure has provisions for enteringmultidrop position values. Multidrop will add additional moves to thestandard place sequence (Section 0) since multiple place motions will berequired.

AutoCAD templates are developed to allow engineers to quickly andaccurately develop the necessary pattern data. FIG. 5 illustrates anexample pattern 500. Pattern drawings are developed in AutoCAD and showthe pattern formation, pick placements, cases, and pick data. Pick datais displayed in table format in TABLE A.

TABLE A Pick Place First Last Depart # # Case Case Distance OH ROT Tuck1 1 1 4 0 0 0 2 2 1 4 0 0 0 3 3 1 4 0 0 0 4 4 1 2 50 0 −90°  5 5 3 4 0 0−90° 

Pick # represents the pick number. This is the sequence followed whenforming the layer. Place # represents the place number. C# is the numberof eases in the pick. First Case is the case number which is going to befirst case for the place number. Last Case is the case number which isgoing to be last case for the place number. Depart Distance is theamount of distance that robot will depart for next place position. OH isthe amount of overhang. ROT is the rotation of the place position. TUCKrepresents the direction of the final place move. The T and S are addedif the infeed conveyor has a case turner. S stands for straight casesand T stands for turned cases. An R can also be added if the infeedconveyor has a row former. RT or RS will added if the pick is two rows.Picks are illustrated by use of a pick block. A straight polylineillustrates the fixed blade position. An attached polyline boxrepresents the most accurate corner of the pick. The most accuratecorner is also the reference point for the placement of the pick in thelayer.

FIG. 6 illustrates a PLC pattern data structure 600.

Robot Pick Place Constants: System attributes that are used by the PLCto calculate position data must be entered as part of the setup prior tosystem operation. These values remain static in the PLC and only need tobe entered as part of the initial setup. The Robot Constants Screen isaccessed only by Admin, ROBOT CONSTANTS button is located at the bottomon the Load Configurator Screen. FIG. 7 illustrates the ROBOT CONSTANTScreen.

Pick Rotation Offset: The tool rotation can vary depending on the typeof robot implemented and/or the mounting configuration of the tool.Rotation offset is used by the PLC to calculate position data. Theoffset will adjust for the condition when the tool is in the standardposition, with the robot Z axis at 0 and the fixed blade is not on theleft side perpendicular to the robots X axis.

Place Rotation Offset: The Place Rotation Offset is similar to the PickRotation Offset with the exception that the value is for all pick types.

Pointer Length: This value represents the length of the pointer used toteach the base frames of the robot.

Line Conveyor X, Y and Z Offsets: The case conveyor base frame originmay not be exactly at the junction of the conveyor side guide and endplate; the offset values are used to account for this. FIG. 7illustrates entries for multiple conveyor lines. The number of lineoffsets will be system specific. FIG. 8 illustrates a case conveyor withthe jig used to teach the base frame, the offsets from the conveyor endand side frames to the taught origin are shown.

The line Pick X offset is the value it takes to get from the origin tothe most downstream position of the case. The example in FIG. 8 would be−50 mm because one would need to subtract 50 mm from the origin to getto the end stop of the conveyor. The line Pick Y offset will be thevalue is takes to get from the origin the side of the case that it willbe justified to when ready to pick. Looking that FIG. 8 if the case isjustified to the right side the y offset would be −50 mm, if the case isjustified to the left side of the conveyor the you would measure fromthe origin all the to the left side of the case that touches the guardrail. The Line Pick Z Offset Minimum Limit represents the minimum Zvalue that the PLC can calculate for the Z position in the conveyor baseframe. This value is used to prevent the tool front hitting theconveyor. This can be calculated by jogging the robot down the lowestacceptable position to pick from and looking at the current robot Zposition of the correct user frame.

Minimum Via Height: This value represents the minimum height the toolmust be to travel from the Pick Depart position to the Place Approachposition and back to the idle, or a new Pick Depart position. This valueincludes clearing obstacles such as other conveyors, and conveyors withcases upon them.

Maximum Via Height: This value represents the maximum height the tool ispermitted to travel from the Pick Depart position to the Place Approachposition and back to the idle, or a new Pick Depart position. This valueincludes clearing obstacles such as other conveyors, conveyors withcases upon them, pallet builds in progress or complete, and the maximumheight the arm can raise without the tool hitting the robot body.

Base Frame Delta: This value is the difference between the Z axis valuesof the conveyor base frame and the pallet conveyor base frames.

Robot Tool Constants: The Robot Tool attributes used by the PLC tocalculate position data must be entered as part of the setup prior tosystem operation. These values remain static in the PLC and only need tobe entered as part of the initial setup. The Robot Tool Constants Screenis accessed only by Admin or ENGINEER. TOOL DATA button is located atthe bottom on the Load Configurator Screen. FIG. 9 or FIG. 10illustrates the Robot Tool Constants Screen 900, 1000 respectively.There are two type of robot tool—Clamp Tool and Vacuum Tool. Tool typecan be changed by pressing Clamp Tool Selected or Vacuum Tool Selectedbutton.

Tool Y Offset (mm): This value is the distance from the origin (center)the robot's wrist flange to the inside face of the fixed blade.

Clamp or Foam Depth (mm): This value is used to enter the depth ofclamps or Vacuum Foam on the tool.

Number of Clamps or Zones: This value is used to enter the number ofclamps or vacuum zones on the tool.

Fixed Blade Thickness or Vacuum Tool Width (mm): The Fixed bladethickness or vacuum tool width needs to be entered.

Clamp or Zone Lengths (mm): Clamps or Zones can have different lengths.The length of each individual clamp or zone needs to be entered.

Clamp Gaps (mm): The tool can have different gaps between the clamps.The length of each individual gap needs to be entered.

Robot Tool Sensors: Robot Tool Sensors are mounted on the robot tooltowards the fixed blade side. These sensors are used to determine whichclamp is used to pick the case or which case has which clamp. The RobotTool Sensor button is located at the bottom on the Robot Tool ConstantsScreen. Enter the number of sensors used for the robot tool. The sensordistance is measured from the top of the tool. Once the distance foreach sensor is measured, enter those values into the Sensor Distancefield.

Pallet Setup Screen: Pallets are stored in a pallet data array. Palletsare assigned to a. pallet build when creating loads. The PLC uses thepallet data to calculate place position values. Pallet Data can beentered or modified on this screen. New data is entered by moving downthe list to a blank entry. Existing data is modified by selecting thedesired. Pallet and changing the data. Modified data will highlightyellow. Pressing the Save pushbutton will save the data, the Cancelbutton will revert the data back to the original value. Pallet Data canbe deleted by pressing DELETE PALLET button. Confirmation will pop up toconfirm whether user wants to delete the pallet data or not.

Pallet Dimensions: The length, width, and height pallet dimensions areentered as part of the pallet data. The pallet height is used by the PLCto calculate place position data.

Line Pallet Place Offsets: The pallet conveyor base frame origin willnot be exactly at the lower right hand corner of the pallet; the offsetvalues are used to account for this. The number of line offsets will besystem specific. For example the base frame for a pallet conveyor wastaught at the base position and the pallet position is placed. Theoffset values correct for the lower right hand corner being displacedfrom the base origin.

Layer Template Utility: The Layer Template Utility screen is used toenter layer template data generated in AutoCAD (Section 0). Since PalletPatterns are made up of a combination of layers, it is generally easierto enter the layer template data first. Data can be entered or modifiedon this screen. New data is entered by moving down the list to a blankentry. Existing data is modified by selecting the desired layer andchanging the data. Modified data will highlight yellow. Pressing theSave pushbutton will save the data, the Cancel button will revert thedata back to the original value.

Pick data is entered by entering the desired pick number in thePick/Layer Number field. Place data is entered by entering the desiredplace numbers in the Places/Layer Number filed, Box Dimensions can alsobe entered on this screen in the Length, Width and Height field. Thedefault unit of dimension is in mm, an option is also available toconvert the units to inches.

A Copy Layer function is available to allow for quick duplication ofdata from one layer to a new layer. The data can be copied and thenmodified as necessary. A Delete Layer function is available to deletethe selected layer data. If Delete Layer is pressed, a confirmationscreen will pop up which will ask the user to confirm deleting theselected layer.

A Template Search function is available to search the Template data basewith user entered search criteria. From this screen user can go toPATTERN UTILITY, PICK UTILITY, HELP, and MENU SCREEN.

Pick Utility: The Pick Utility Screen is used to setup the pick type.Enter the Pick number in Pick Number field and number of cases for thatrespective pick in Cases/Pick field. Select the Fixed Blade position,whether it's on left side or right side. If fixed blade is on left side.Select the robot tool position, whether it's upstream or downstream. IfClamp Gap or Case Split is selected on Clamp Select screen, the upstreamoption will go away. If these options are selected all calculations willuse the downstream algorithms.

Case Justification Select the case conveyor justification, whether thecases are coming on left side of the conveyor or right side of theconveyor.

Case Assist Enable—if case assist enable is selected, then case assistsolenoid will be on whenever the boxes are turned and box turn solenoidis on for that layer.

Boxes Turned—If Boxes Turned is selected, then boxes will be turned atinfeed conveyor with help of case turned solenoid when using a rowformer.

Row Forming—If Row Forming is selected, then another row of boxes willbe formed on infeed conveyor.

Labels—label position can be selected depending on which side the labelis present on the box.

From Pick Type Utility Screen, user can go to Clamp/Vacuum Select, ToolData, and Template Utility Screen.

Clamp Select: Clamp Select Screen is used to select the gap between theclamps or zone for selected pick number. If the pick is multidrop, thenselect the cases split depending on which cases going to be dropped. Forexample, if case 1 and case 2 are in place 1 drop and case 3 is in place2 drop position, then select the case split 2-3.

Load Configurator: The Load Configurator Utility Screen is used to enterLoad Pattern Data. Data can be entered or modified on this screen. Newdata is entered by moving down the list to a blank entry. Existing datais modified by selecting the desired pallet build and changing the data.Modified data will highlight yellow. Pressing the Save pushbutton willsave the data, the Cancel button will revert the data back to theoriginal value.

Box Dimension: Enter the box dimensions—length, width and height in boxdimensions field. The default unit for dimensions is mm, if user wantsto change it into inches, press the Unit/in button. If load is based onpattern, then box length and width will be locked and user will not ableto modify it once it entered (these can only be modified under thetemplate utility, once they are changed the user will need to update allplace positions).

Master Vel: Is the maximum speed this pattern will run. It is usuallyset to 100%, but it can be reduced if necessary.

Pick Velocity is the speed at which the robot will approach and departthe pick position. It is usually set to 100%, but it can be reduced ifnecessary. The pick velocity can be different for each pick.

Place Velocity is the speed at which the robot will approach and departthe place position. It is usually set to 100%, but it can be reduced ifnecessary. The place velocity can be different for each place and can bedifferent too if it's multidrop. Note: If these velocities are left at0% the general robot speed will be used.

The place position correction factor can be used to accommodatedifficult to handle product where the place position needs to beslightly off of the calculated position.

Place X Offset is the amount the place moves in the X direction.

Place Y Offset is the amount the place moves in the Y direction.

Since this is a correction factor, it only applies to one specific placeon one specific layer. It does not affect the entire pallet pattern. TheLayer Number and Place Number data determine the specific place affectedwithin the pallet pattern.

The load layers can be selected as Template based or Pattern based. Ifthe load is pattern based, the Assign Template button will he invisibleand vice versa. Select the layer to use from the template based orpattern based load configurator list or enter the layer number for theapplicable layer.

Once all data is entered or modified, Press the save button to savechanges.

Assign Speeds function is available for each load individually. IfAssign Speeds button is pressed, assign speeds screen will pop up whereuser can enter the speed for infeed and row former conveyor speeds.

A Delete Pattern function is available to delete Load data from LoadPattern database.

From this screen user will be able to go to the Template Utility, RobotConstants, Tool Data, or Pallet data screen.

Line Status: The Line Status screen is used to monitor the status ofeach line conveyor data. He/she can enable or disable the pick, rejectload, end the current run load. There are some function which are onlyassessable in Admin Mode, such as Simulation Mode, manual selection ofLayer number, pick number, and place number.

The user can change the Robot speed by pressing Robot speed, and robotspeed screen will pop up. On robot speed screen, user can see themaximum speed set for each line and robot speed. The Robot Speed ispercentage of Master velocity which is entered on Load Configuratorscreen. For example, if master velocity is 35% for the active line androbot speed is 25%, then robot will run at 25%. It will then look to seeif the pick or place velocity is lower than 25% and if so will reduceits speed to that setting.

Line Setup: The Line Setup screen is used to assign the load for thatline to run. The Load can be selected by moving up and down to thedesired load and then press the Accept Assignment. A new assignment canonly be loaded if the current line does not have an assignment, and. EndOf Run must be performed to clear out the data and no pallet must bepresent on the build conveyor.

Pallet Conveyor Screen: Pallet Conveyor screen is used to monitor palletbuild and discharge conveyors, pallet present on conveyors or not. AlsoPallet Build and Discharge conveyors can be jogged from this screen. IfInfeed and/or Discharge Light curtain is blocked, then light curtainsensors will blink red. If Jog Control is pressed, Jog control screenwill pop up

Robot Control: The Robot Control screen is used to enable End EffectorManual mode and Drop Detect as well as to control different functions ofthe robot. If System is in Manual Mode and End Effector is in manualtriode, then user can open or close the clamps individually or together.If Drop Detect is enable, then the robot tool sensors will detect thatall the cases are in clamps or not. If any case is missing or drop fromthe clamp, then it will give a Drop Detect Fault and will ask user tocomplete the place operation or not. If user presses yes, then robotwill complete the place operation and robot will then hold for cases tobe adjusted or added. Once everything is cleared, press Start Robotbutton and robot will start operation from where it was left.

Security Log Screen: The Security Log Screen is accessed only in ADMINMODE, and is used to check security log, create new user, modifyexisting user, and change user properties.

Alarm History Screen: The Alarm History Screen is used to check thehistory of all system alarms and faults that occurred. The alarm can befiltered as System Fault, Safety Fault, Robot Fault, Conveyor Fault, andPallet Fault. Alarm history can be cleared only in Engineer or AdminMode. All Faults can be reset from this screen too.

Template Search Screen: Template Search Screen is used to search theTemplate database with user entered Search Criteria. To access theTemplate Search screen, press Template Search button on Template Utilityscreen. Enter the box length and width in box length and box widthfield. Also enter the minimum and maximum layer length and width intominimum and maximum layer length and width field respectively. Once allthe data is entered, press the Search button. If there are any Templatesthat match with user Criteria, it will be listed according to descendingorder of maximum number of cases per layer. User can preview the layerbefore selecting it to verify correct formation.

Simulation Mode The Simulation Mode screen is accessible only in ADMINMODE. This screen is used to test the robot movements and position insimulation mode without running case conveyor or pallet conveyor, eventhough the system is in Auto Mode. To use the simulation mode, systemneeds to be Auto Mode and Pick Photo Eye must be clear. Robot can betested for each pick separately by pressing Ready To Pick each time orRobot can be tested for whole layer by pressing Ready to Force button.

FIG. 11 illustrates an HMI depiction 1100 of a case conveyor withsuperimposed end effector clamps for configuring pick of multiplesarticles.

FIGS. 12A-12F illustrates a sequence of HMI depictions 1200 a-1200 f ofbuilding a pattern 1202 a-1202 f.

While the disclosure has been described with reference to exemplaryembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted forelements thereof without departing from the scope of the disclosure. Inaddition, many modifications may be made to adapt a particular system,device or component thereof to the teachings of the disclosure withoutdeparting from the essential scope thereof Therefore, it is intendedthat the disclosure not be limited to the particular embodimentsdisclosed for carrying out this disclosure, but that the disclosure willinclude all embodiments falling within the scope of the appended claims.Moreover, the use of the terms first, second, etc. do not denote anyorder or importance, but rather the terms first, second, etc. are usedto distinguish one element from another.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the disclosure.As used herein, the singular forms “a”, “ ” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The description of the present disclosure has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the disclosure in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope of the disclosure. Thedescribed embodiments were chosen and described in order to best explainthe principles of the disclosure and the practical application, and toenable others of ordinary skill in the art to understand the disclosurefor various embodiments with various modifications as are suited to theparticular use contemplated.

What is claimed is:
 1. A method of creating a multidrop pattern ofarticles for robotic placement in layers on a pallet, the methodcomprising: receiving a first user input indicating a first placementposition of a first subset of more than one article for placement on thepallet; receiving a second user input indicating a second placementposition of a second subset, which is mutually exclusive of the firstsubset, of the more than one article; and converting the first andsecond user inputs into a place sequence of robotic control operationsto perform a multidrop operation of the more than one article by arobotic arm.
 2. The method of claim 1, wherein receiving the first andsecond user inputs comprises receiving a drag and drop input via a userinterface.
 3. The method of claim 1, wherein receiving the first andsecond user inputs comprises receiving numeric values.
 4. The method ofclaim 1, further comprising: presenting on a user interface a caseconveyor depiction of a case conveyor and the more than one articlearrayed on the case conveyor, presenting on the user interface an endeffector depiction of independently controllable zones of an endeffector; receiving a third user input indicating a superimposedposition of the independently controllable zones on the case conveyor;receiving a fourth user input indicating an engagement status of eachindependently controllable zone to engage a respective one or more ofthe more than one article; and converting the third and fourth userinputs into a pick sequence of robotic control operations to perform themultidrop operation by the robotic arm.
 5. The method of claim 4,further comprising: presenting a control interface, wherein presentingthe control interface comprises soliciting a position for a zone gaprelative to the more than one article; receiving a fifth user inputindicating the relative position for the zone gap; and converting thethird, fourth and fifth user inputs into the pick sequence.
 6. Themethod of claim 4, further comprising: moving the end effector to a pickapproach position; moving the end effector to a pick offset position;moving the end effector to a pick position; actuating selected ones ofthe independently controllable zones of the end effector to engage themore than one article; moving the end effector to a first pick departposition; moving the end effector to a first place approach position;moving the end effector to a first place tuck position; moving the endeffector to a first place position; deactuating one or moreindependently controllable zones that correspond to the first subset ofmore than one article; moving to a second place depart position; movingto second place approach position; moving the end effector to a secondplace tuck position; moving the end effector to a second place position;and deactuating one or more independently controllable zones thatcorrespond to the second subset of more than one article to place. 7.The method of claim 4, wherein presenting the end effector depictioncomprises presenting pairs of clamps.
 8. The method of claim 4, whereinpresenting the end effector depiction comprises presenting vacuum zones.9. A controller comprising: a user interface device; a device interfacein communication with a robotic arm having an end effector, and aprocessor subsystem in communication with the user interface device anddevice interface to: receive a first user input indicating a firstplacement position of a first subset of more than one article; receive asecond user input indicating a second placement position of a secondsubset, which is mutually exclusive of the first subset, of the morethan one article; and convert the first and second user inputs into aplace sequence of robotic control operations to perform a multidropoperation of the more than one article by the robotic arm.
 10. Thecontroller of claim 9, wherein the processor subsystem receives thefirst and second user inputs as a drag and drop input via the userinterface device.
 11. The method of claim 9, wherein the processorsubsystem receives the first and second user inputs as numeric valuesvia the user interface device.
 12. The controller of claim 9, whereinthe processor subsystem: presents on the user interface device a caseconveyor depiction of a case conveyor and the more than one articlearrayed on the case conveyor; presents on the user interface device anend effector depiction of independently controllable zones of the endeffector; receives a third user input indicating a superimposed positionof the independently controllable zones on the case conveyor, receives afourth user input indicating an engagement status of each independentlycontrollable zone to engage a respective one or more of the more thanone article; and converts the third and fourth into a pick sequence ofrobotic control operations to perform the multidrop operation by therobotic arm.
 13. The controller of claim 12, wherein the processorsubsystem: presents a control interface, wherein presenting the controlinterface comprises soliciting a position for a zone gap relative to themore than one article; receives a fifth user input indicating therelative position for the zone gap; and converts the third, fourth andfifth user inputs into the pick sequence.
 14. The controller of claim12, wherein the processor subsystem via the device interface executesthe pick and place sequences of robotic control operations by: movingthe end effector to a pick approach position; moving the end effector toa pick offset position; moving the end effector to a pick position;actuating selected ones of the independently controllable zones of theend effector to engage the more than one article; moving the endeffector to a first pick depart position; moving the end effector to afirst place approach position; moving the end effector to a first placetuck position; moving the end effector to a first place position;deactuating one or more independently controllable zones that correspondto the first subset of more than one article; moving to a second placedepart position; moving to second place approach position; moving theend effector to a second place tuck position; moving the end effector toa second place position; and deactuating one or more independentlycontrollable zones that correspond to the second subset of more than onearticle to place.
 15. The controller of claim 12, wherein the processorsubsystem presents the end effector depiction as pairs of clamps on theuser interface device.
 16. The controller of claim 12, wherein theprocessor subsystem presents the end effector depiction as vacuum zoneson the user interface device.
 17. A material handling system comprising:a robotic arm having an end effector for placing more than one articleon a pallet; a user interface device; a controller in communication withthe robotic arm having the end effector; and a processor subsystem incommunication with the user interface device and the controller to:receive a first user input indicating a first placement position of afirst subset of more than one article; receive a second user inputindicating a second placement position of a second subset, which ismutually exclusive of the first subset, of the more than one article;and convert the first and second user inputs into a place sequence ofrobotic control operations to perform a multidrop operation of the morethan one article by the robotic arm.
 18. The material handling system ofclaim 17, wherein the controller: presents on the user interface devicea case conveyor depiction of a case conveyor and the more than onearticle arrayed on the case conveyor; presents on the user interfacedevice an end effector depiction of independently controllable zones ofthe end effector, receives a third user input indicating a superimposedposition of the independently controllable zones on the case conveyor;receives a fourth user input indicating an engagement status of eachindependently controllable zone to engage a respective one or more ofthe more than one article; solicits a position for a zone gap relativeto the more than one article; and receives a fifth user input indicatingthe relative position for the zone gap; and converts the third, fourthand fifth user inputs into a pick sequence of robotic control operationsto perform the multidrop operation by the robotic arm.
 19. The materialhandling system of claim 17, wherein the controller executes the pickand place sequences of robotic control operations by: moving the endeffector to a pick approach position; moving the end effector to a pickoffset position; moving the end effector to a pick position; actuatingselected ones of the independently controllable zones of the endeffector to engage the more than one article; moving the end effector toa first pick depart position; moving the end effector to a first placeapproach position; moving the end effector to a first place tuckposition; moving the end effector to a first place position; deactuatingone or more independently controllable zones that correspond to thefirst subset of more than one article; moving to a second place departposition; moving to second place approach position; moving the endeffector to a second place tuck position; moving the end effector to asecond place position; and deactuating one or more independentlycontrollable zones that correspond to the second subset of more than onearticle to place.
 20. The material handling system of claim 17, wherein:the end effector is selectably configurable with a selected one of: (i)an end effector having pairs of clamps; and (ii) an end effector havingvacuum actuators; and the controller: presents a control interface toconfigure a depicted end effector as a selected one of the end effectorhaving the pairs of claims and the end effector having the vacuumactuators; and presents the control interface to select a number ofindependently controllable zones.